package endcourseproject;

public class RobotMsg {

	public static final int msgTypeOffset = 0;   
	public static final int msgTypeLen = 1;   

	public static final int msgDataOffset = msgTypeOffset+msgTypeLen;   

	public static final byte StatusMsgType = (byte)0x00;  
	public static final byte TravelCmdMsgType = (byte)0x01;  
 
	private byte[] rawMsg;

	// used this when messages received (msdu []) 
	public RobotMsg(byte[] message )
	{
		this.rawMsg = message; 
 	}

	public byte[] getRawMsg() {
		return rawMsg;
	}

	public void setRawMsg(byte[] msg) {
		this.rawMsg = msg;
	}

	public byte getMsgType() {
        if (rawMsg != null)
        	return this.rawMsg[msgTypeOffset];
        else
        	return (byte) 0xFF;
	}

	public void setMsgType(byte msgType) {
		this.rawMsg[msgTypeOffset] = msgType;
	}

	public byte[] getMsgData() {
		byte[] msgData = new byte[rawMsg.length-msgDataOffset];
		System.arraycopy( this.rawMsg, msgDataOffset,msgData, 0, rawMsg.length-msgDataOffset);
		return msgData;
	}

	public void setMsgData(byte[] data) {
        byte oldType= getMsgType(); // get old type if available
		rawMsg = new byte[data.length+msgDataOffset]; 
		setMsgType(oldType);
		System.arraycopy( data, 0,rawMsg, msgDataOffset, data.length);
	}

}
